#include "mywidget.h"

Mywidget::Mywidget(QWidget *parent) : QWidget(parent)
{
#if 0

    QFile file("text.txt");
    //if(false == file.open(QIODevice::WriteOnly))
    if(false == file.open(QIODevice::ReadWrite))
    {
        qDebug()<<"打开文件失败";
    }



#if 0
    file.write("lifeilifei");           //写入成功;     lifeilifei
    file.seek(2);                       //移动写入光标，移动到该文本的第几个后面

    file.write("666");                  //写入成功      li666lifei          那也就说明这是覆盖式的
#endif



#if 0
    char str[20] = {0};
    file.read(str,20);
    qDebug()<<str;
#endif



#if 0
    //Qt是 以unicode来编码处理的，所以在读取文本的时候，出现中文会乱码；
    while(!file.atEnd())
    {
        char buff[100];

        file.readLine(buff,100);

        //QByteArray        是以原始的八位来存储字符的
        QByteArray buf_barr = file.readLine();

        //解决中文乱码：
        QTextCodec* tc = QTextCodec::codecForName("GBK");
        QString str = tc->toUnicode(buf_barr);        //把buff转成unicode类型

        qDebug()<<str;
    }
#endif



#if 0
    //文本流：
    QTextStream ts(&file);
   //ts<<10<<1.6<<QString("lifei");          //写入，这个也是覆盖写入式，并且在文本的顶头开始覆盖

    int num;
    double dou;
    QString str;
    ts>>num >>dou >> str;     //读取出

    qDebug()<<num<<dou<<str;
#endif


#if 1
    //数据流：      以二进制的格式写入的      文本看的时候就是乱码
    QDataStream ds(&file);
    //ds<<10<<QString("china")<<1.55;

    int num;
    double dou;
    QString str;
    ds>>num >> str>>dou;     //读取出

    qDebug()<<num<<dou<<str;        //qt解析读取到的，还是正常的，非乱码


#endif


    file.close();

#else
    //内存文件      QBuffer     给我们提供一块内存用来我们去操作，存数据，所以就不用再建一个文本文件了

#if 0
    QBuffer buffer;
    buffer.open(QIODevice::ReadWrite);
    buffer.write("abc");
    buffer.write("1234");
    buffer.close();

    qDebug()<<buffer.buffer();
#endif
    //把一个图片转为内存数据
    QBuffer buf;
    buf.open(QIODevice::ReadWrite);

    QPixmap pix("bg.png");
    pix.save(&buf,"PNG");        //保存到buf里面   格式为jpg格式
    buf.close();

    //再输出这个内存数据：
    qDebug()<<buf.size();

    QPixmap pix2;
    pix2.loadFromData(buf.buffer(),"PNG");      //从内存数据中读取图片，图片格式我PNG格式

    QLabel* label = new QLabel(this);
    label->setPixmap(pix2);
    QHBoxLayout* mainLayout = new QHBoxLayout(this);
    mainLayout->addWidget(label);



#endif







}
